home *** CD-ROM | disk | FTP | other *** search
- #include <stdlib.h>
- #include <iostream.h>
-
- class A
- {
- private:
- struct DataType
- {
- double x,y;
- static int compare_function(const void * a, const void * b)
- {
- const DataType *first = (DataType*) a;
- const DataType *second = (DataType*) b;
- if (first->x > second->x)
- return 1;
- else if (first->x < second->x)
- return -1;
- else
-
- return 0;
- }
- } * data;
- int size;
- public:
- A(int n, double * x, double * y);
- ~A();
- void sort();
- void list();
- };
-
- A::A(int n, double * x, double * y)
- {
- size = n;
- data = new DataType[size];
- for (int i = 0; i < size; i++)
- {
- data[i].x = x[i];
- data[i].y = y[i];
- }
- };
-
- A::~A()
- {
- delete [] data;
- }
-
- void A::sort()
- {
- qsort (data, size, sizeof(DataType), DataType::compare_function);
- }
-
- void A::list()
- {
- for (int i = 0; i < size; i++)
- {
- cout << data[i].x << " " << data[i].y << endl;
- }
- }
-
- main()
- {
- double xarray[5] = {4.0, 2.0, 3.0, 5.0, 1.0};
- double yarray[5] = {0.1, 0.2, 0.3, 0.4, 0.5};
- A AInst (3, xarray, yarray);
- cout << "Original list" << endl;
- AInst.list();
- AInst.sort();
- cout << endl << "Sorted list" << endl;
- AInst.list();
- return 0;
- }
-